package com.ynet.middleground.mobile.approve.request;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * BackupChannelResultSyncReq 渠道同步结果请求信息（备用补偿用）
 *
 * @author suremotoo
 * @date 2023/04/12 09:52
 */
@Data
@ApiModel(value = "道同步结果请求信息（备用补偿用）")
public class BackupChannelResultSyncReq implements Serializable {

    private static final long serialVersionUID = 5850390446529577265L;

    @NotBlank(message = "业务流水号不能为空")
    @ApiModelProperty(value = "业务流水号", required = true)
    private String traceId;

    @NotBlank(message = "渠道来源不能为空")
    @ApiModelProperty(value = "渠道来源", required = true)
    private String channel;

    @NotNull(message = "请求时间不能为空")
    @ApiModelProperty(value = "请求时间", required = true)
    private Date requestTime;

    @NotBlank(message = "审批操作执行前业务流水不能为空")
    @ApiModelProperty(value = "审批操作执行前业务流水", required = true)
    private String prevTraceId;

    @NotNull(message = "任务 id 不能为空")
    @ApiModelProperty(value = "任务 id", required = true)
    private String taskId;

    @NotNull(message = "是否允许审批操作不能为空")
    @ApiModelProperty(value = "是否允许审批操作", required = true)
    private boolean allowApproveOperate;

    @NotNull(message = "是否有执行指令不能为空")
    @ApiModelProperty(value = "是否有执行指令", required = true)
    private boolean hasCommand;

    @ApiModelProperty(value = "指令名称")
    private String commandName;

    @ApiModelProperty(value = "指令结果")
    private boolean commandResult;

    @ApiModelProperty(value = "原因")
    private String reason;

}
